package com.spsoft.vatoutinv.service.vmsfullbswjmanager;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spsoft.core.model.Result;
import com.spsoft.vatoutinv.entity.vmsfullbswjmanager.VmsFullBswjManager;
import com.spsoft.vatoutinv.model.dto.vmsfullbswjmanager.VmsFullVswjManagerPageDto;
import com.spsoft.vatoutinv.model.vo.vmsfullbswjmanager.VmsFullBswjManagerDetailVO;
import com.spsoft.vatoutinv.model.vo.vmsfullbswjmanager.VmsFullBswjManagerKprVO;
import com.spsoft.vatoutinv.model.vo.vmsfullbswjmanager.VmsFullBswjManagerPageVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 数电发票板式文件管理表;数电发票板式文件管理表 服务类
 * </p>
 *
 * @author wangy
 * @since 2023-11-29
 */
public interface VmsFullBswjManagerService extends IService<VmsFullBswjManager> {

    /**
     * 新增数电发票文件
     */
    Result<Long> fileSave(MultipartFile multipartFile, String deptCode, String qydm, String qymc, String ptbh, String bswjsczt, String fpkjzt, String bswjId, String nsrsbh, String nsrmc, String jkkpkpr);

    /**
     * 分页获取 数电发票版式文件
     *
     * @param dto
     * @return
     */
    Result<IPage<VmsFullBswjManagerPageVO>> getPage(VmsFullVswjManagerPageDto dto);

    /**
     * 根据ID获取图片
     *
     * @param id
     * @return
     */
    Result<String> getFileById(String id);

    /**
     * 根据ID删除图片
     *
     * @param id
     * @return
     */
    Result<Boolean> deleteFileById(String id);

    /**
     * 根据 机构 获取版式文件信息
     *
     * @param whjg 维护机构 部门编码
     */
    Result<VmsFullBswjManager> getInfoBywhjg(String whjg);

    /**
     * 获取版式文件名称
     *
     * @param nsrsbh
     * @return
     */
    String filePath(String nsrsbh);

    Result<String> updateStatus(String id, String type, String status);

    boolean queryStatus(String deptCode, String key);

    VmsFullBswjManager getOneByWhjg(String whjg);

    Result<VmsFullBswjManagerDetailVO> getDetailByBswjId(String bswjId);

    /**
     * 获取接入数电的所有机构数电配置信息
     */
    List<VmsFullBswjManager> getAllSdDeptInfo();

    Result<List<VmsFullBswjManagerKprVO>> getJkkprByWhjg(String whjg);


    /**
     * 加载数据到缓存中
     */
    void loadCache();

}
